class Solution(object):

def isValid\(self, s\):

    """

    :type s: str

    :rtype: bool

    """

    stack = \[\]

    for i in range\(len\(s\)\):

        if s\[i\] == '\(' or s\[i\] == '\[' or s\[i\] == '{':

            stack.append\(s\[i\]\)

        if s\[i\] == '\)':

            if stack == \[\] or stack.pop\(\) != '\(':

                return False

        if s\[i\] == '\]':

            if stack == \[\] or stack.pop\(\) != '\[':

                return False

        if s\[i\] == '}':

            if stack == \[\] or stack.pop\(\) != '{':

                return False

    if stack:

        return False

    else:

        return True

这里有两个keypoint:

如果直接用数量判断,而不是堆栈的话,那么([)]这样的是判断不出来的。所以必须得给定优先级

那么怎么给优先级呢?

通过堆栈的时候不同的判断条件的顺序来给

results matching ""

    No results matching ""